package com.jiliang.common.business;


import com.jiliang.common.area.AreaResDsBean;
import com.jiliang.common.exception.SystemCodeDsBean;
import com.jiliang.common.exception.handle.ExceptionReqDsBean;
import com.jiliang.common.result.InterfaceBean;
import org.springframework.scheduling.annotation.Async;

/**
 * @author 
 * @version v_1.0.1
 * @since 2019/1/4 14:51
 */

public interface BasicDsService {

    /**
     * 查询异常码
     *
     * @param code
     * @return SystemCodeDsBean
     * @author 
     * @since 2019/1/7 13:06
     */
    SystemCodeDsBean selErrorByCode(String code);
    /**
     * 根据类型及编码查询异常码信息
     * @param type 异常类型
     * @param code 编码
     * @return SystemCodeDsBean
     * @author 
     * @since 
     **/
    default SystemCodeDsBean selErrorByTypeAndCode(String type, String code) {
        return selErrorByCode(code);
    }

    /**
     * 校验权限
     *
     * @param interfaceBean
     * @return boolean
     * @author 
     * @since 
     */
    boolean isRightRequest(InterfaceBean interfaceBean);

    /**
     * 添加异常信息
     *
     * @param exceptionReqDsBean
     * @return void
     * @author 
     * @since 
     */
    @Async
    void add(ExceptionReqDsBean exceptionReqDsBean);

    /**
     * 根据地区名称查询地区数据
     *
     * @param areaFullName
     * @return AreaResDsBean
     * @author
     * @since 
     */
    AreaResDsBean selAreaByFullName(String areaFullName);
}
